Tính toán CRC Cyclic_Redundancy_Check

Bài chi tiết: Tính toán CRC

Để tính toán một mã nhị phân n bit CRC, xếp các bit biểu diễn đầu vào thành một hàng, và đặt mẫu (n+1) bit biểu diễn số chia của CRC (gọi là một "đa thức") vào bên dưới bên trái ở cuối hàng.

Sau đây ví dụ encode 14 bits của message với CRC 3-bit với đa thức như sau

- Đa thức (polynomial) là x3 + x + 1 đa thức được viết dưới dạng nhị phân khi thực thiện phép tính- Đa thức này là đa thức bậc ba nên sẽ có 4 hệ số (1x3 + 0x2 + 1x + 1). Trong trường hợp này, 4 hệ số sẽ là 1, 0, 1 và 1.


Dãy số đầu vào:

11010011101100 
11010011101100 000 <--- Đầu vào (thêm vào bên phải dãy 3 bit 0)1011               <--- Số chia (4 bits) = x³ + x + 1------------------01100011101100 000 <--- Kết quả (--> Lại đưa vào đầu vào của phép tính tiếp theo)Ánh đã chia thử: 010011001111101

Nếu dãy nhị phân đầu vào bên trên có bít cực tả (đầu tiên bên trái) là 0, không làm gì hết và dịch số chia sang phải một bít. Nếu dãy nhị phân đầu vào bên trên có bít cực tả là 1, lấy dãy số đầu vào trừ đi số chia (hay nói cách khác, lấy từng bít ở dãy số đầu vào trên trừ đi từng bít ở số chia). Số chia sau đó dịch vị trí 1 bít sang phải, quá trình cứ tiếp diễn như vậy đến khi số chia chạm tới tận cùng bên phải của dãy số đầu vào. Đây là phép tính cuối cùng:

00000000000101 000 <--- Kết quả của phép nhân           101 1   <--- Số chia------------------00000000000000 100 <--- Số dư (3 bits)

Do cực tả của số chia sẻ làm các bít tương ứng của dãy số đầu vào trở về 0 qua mỗi lần dịch, khi quá trình này kết thúc, chỉ còn những bít ở dãy đầu vào có thể không là 0 trở thành n bit cuối bên phải của dãy số. n bit này là số dư của bước chia, và cũng sẽ là giá trị hàm CRC (trừ khi hàm CRC được chọn đặc biệt được gọi cho một số công đoạn tiền xử lý).